﻿using Onshi.POS.AccesoDatos.Interfaces;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace Onshi.POS.AccesoDatos
{
    public class ServicioDatosCamposPersonalizadosProveedores : ServicioDatosBase, IServicioDatosCamposPersonalizadosProveedores
    {
        #region Metodos

        public DataSet CamposPersonalizadosProveedores_DevolverTodos()
        {
            try
            {
                var cm = new SqlCommand("CamposPersonalizadosProveedores_DevolverTodos", Conexion);
                cm.CommandType = CommandType.StoredProcedure;
                var da = new SqlDataAdapter(cm);
                var ds = new DataSet();
                da.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                    Conexion.Close();
            }
        }

        public DataSet CamposPersonalizadosProveedores_DevolverPorId(Int32 idCampoPersonalizadoProveedor)
        {
            try
            {
                var cm = new SqlCommand("CamposPersonalizadosProveedores_DevolverPorId", Conexion);
                cm.CommandType = CommandType.StoredProcedure;
                cm.Parameters.AddWithValue("@IdCampoPersonalizadoProveedor", idCampoPersonalizadoProveedor);
                var da = new SqlDataAdapter(cm);
                var ds = new DataSet();
                da.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                    Conexion.Close();
            }
        }

        public Int32 CamposPersonalizadosProveedores_Insertar(String nombre, String observaciones)
        {
            try
            {
                var cm = new SqlCommand("CamposPersonalizadosProveedores_Insertar", Conexion);
                cm.CommandType = CommandType.StoredProcedure;
                cm.Parameters.AddWithValue("@Nombre", nombre);
                cm.Parameters.AddWithValue("@Observaciones", observaciones);
                cm.Connection.Open();
                return Convert.ToInt32(cm.ExecuteScalar());
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                    Conexion.Close();
            }
        }

        public void CamposPersonalizadosProveedores_Modificar(Int32 idCampoPersonalizadoProveedor, String nombre, String observaciones)
        {
            try
            {
                var cm = new SqlCommand("CamposPersonalizadosProveedores_Modificar", Conexion);
                cm.CommandType = CommandType.StoredProcedure;
                cm.Parameters.AddWithValue("@IdCampoPersonalizadoProveedor", idCampoPersonalizadoProveedor);
                cm.Parameters.AddWithValue("@Nombre", nombre);
                cm.Parameters.AddWithValue("@Observaciones", observaciones);
                cm.Connection.Open();
                cm.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                    Conexion.Close();
            }
        }

        public void CamposPersonalizadosProveedores_Eliminar(Int32 idCampoPersonalizadoProveedor)
        {
            try
            {
                var cm = new SqlCommand("CamposPersonalizadosProveedores_Eliminar", Conexion);
                cm.CommandType = CommandType.StoredProcedure;
                cm.Parameters.AddWithValue("@IdCampoPersonalizadoProveedor", idCampoPersonalizadoProveedor);
                cm.Connection.Open();
                cm.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (Conexion.State == ConnectionState.Open)
                    Conexion.Close();
            }
        }

        #endregion
    }
}
